package venta;

public abstract class Cancel {
	
	//Strategy!
	//opciones de cancelacion
	//Cancelacion completa con retorno de efectivo
	//Cancelacion completa con nota de credito
	//Cancelacion 1 producto con retorno de efectivo
	//Cancelacion 1 producto con nota de credito
	//Cancelacion lista de procutos con retorno de efectivo
	//Cancelacion lista de productos con nota de credito
	
	//En las parciales deberia fallar si se intenta cancelar productos
	//que no corresponden a la venta.
	
	Venta venta;
	double dineroDisponible;
	
	Cancel(Venta unaVenta){
		
		this.venta=unaVenta;
		this.dineroDisponible=this.venta.importeTotalDeVenta();
	}
	
	public void ejecutar(){
		this.retornarProductos();
		this.retornarImporte();
	}
	
	protected abstract void retornarProductos();
	protected abstract void retornarImporte();

	
}
